package day13.Homework;

import java.io.Serializable;

//a.定义三个接口 通话接口(提供通话的方法)
// 短信接口(提供短信方法)   上网接口(提供上网方法)
interface Call {
    void call();
}

interface Message {
    void message();
}

interface Internet {
    void internet();
}

//b.设计套餐对象的抽现象类具有(具有套餐价格属性, 打印信息方法)
//   设计三个实现类 来继承抽象类
//   话唠套餐类(可以通话和发短信 所以要实现通话和短信接口)
//   超人套餐类(可以通话和发短信和使用流量 所以要实现通话 短信和上网接口)
//   网虫套餐类(只能上网 只需要实现上网接口)
public abstract class Plan implements Serializable {
    double price;
    public abstract void print();

}

class Chatterbox extends Plan implements Call, Message {
    //话唠套餐类
    public Chatterbox(double price) {
        super.price = price;
    }

    @Override
    public void message() {
        System.out.println("现在可以发消息了");
    }

    @Override
    public void call() {
        System.out.println("现在可以打电话了");
    }

    @Override
    public void print() {
        System.out.println("话唠套餐,价格:" + price);
    }
}

class Superman extends Plan implements Call, Internet {
    //超人套餐类
    public Superman(double price) {
        super.price = price;
    }

    @Override
    public void internet() {
        System.out.println("现在可以上网了");
    }

    @Override
    public void call() {
        System.out.println("现在可以打电话了");
    }

    @Override
    public void print() {
        System.out.println("超人套餐,价格:" + price);
    }
}

class Networm extends Plan implements Internet {
    //网虫套餐类
    public Networm(double price) {
        super.price = price;
    }

    @Override
    public void internet() {
        System.out.println("现在可以上网了");
    }

    @Override
    public void print() {
        System.out.println("网虫套餐,价格:" + price);
    }
}
